package com.example;

/**
 * @desc:
 * @author: Shoko
 * @date: 2025/6/6
 */
public class GameTest {
    public static void main(String[] args) {
        // 创建游戏场景
        GameScene gameScene = new GameScene();
        Caretaker caretaker = new Caretaker();

        // 初始游戏场景
        gameScene.setSceneState("初始场景 - 新手村");
        System.out.println(gameScene);

        // 保存第一个恢复点
        caretaker.saveMemento(gameScene.save());
        System.out.println(">>> 保存恢复点1");

        // 游戏进行中，场景变化
        gameScene.setSceneState("场景2 - 黑暗森林");
        System.out.println(gameScene);

        // 保存第二个恢复点
        caretaker.saveMemento(gameScene.save());
        System.out.println(">>> 保存恢复点2");

        // 游戏进行中，场景变化
        gameScene.setSceneState("场景3 - 恶魔城堡");
        System.out.println(gameScene);

        // 玩家角色牺牲，需要恢复
        System.out.println("\n>>> 玩家角色牺牲，开始恢复...");

        // 恢复到上一个恢复点
        gameScene.restore(caretaker.getMemento());
        System.out.println("恢复后的场景: " + gameScene);

        // 再次牺牲，恢复到第一个恢复点
        System.out.println("\n>>> 玩家角色再次牺牲，恢复到初始恢复点...");
        gameScene.restore(caretaker.getMemento());
        System.out.println("恢复后的场景: " + gameScene);
    }
}
